G3a: LTC+DOGE populated-block production harness (test-only, regime-independent) - #679
Merged
Merged
Conversation
Re-cuts the LTC (+DOGE aux) crossing soak-harness so it lands the moment the swarm (VM119/120/121) has a target, per integrator UID2071. Mirrors the dgb/dash G2 harnesses but THREE-TIER per operator 2026-07-03 wire-compat: T-A jtoomim v35-only (raw-tx) T-B p2pool-merged-v36 (python, v36 dest) T-C c2pool-ltc (C++, AutoRatchet, DOGE aux embedded) -- on ONE sharechain. Staged with the 3301 accept-floor (params.hpp:65), the PR#95 8-byte identifier (e037d5b8c6923410), and --fresh-ratchet (archives prior ratchet state, never destroys). Staging: forward natural-fill -> ratchet cross (.37/.38/.39 repoint) -> reverse. 5 checks: three-tier cohabit, vote-visibility (zero v36-byte leak into v35 shares), #288 staged accept gate, ratchet+persist+reverse, byte-compat differential. Found gap recorded in-script: LTC lacks the dgb/btc AutoRatchet sim/tail-guard/ desired-version KATs its own state machine is the reference for; --sim-votes rows are [GATED: ltc-ratchet-kats] until those ports land (next milestone). Rig rows GATED until start-tap frees R1-LTC onto the v36 tier. Deploy-only; natural- vote hard gate preserved; never force-activates.
…erged-aux) Standalone host-compilable harness proving FOUND->ASSEMBLED->ACCEPTED is regime-independent (v35/HYBRID/v36) for BOTH the LTC parent block and the DOGE aux block it carries. Asserts: - populated assembly: 6 diverse tx (coinbase/P2PKH/P2SH/segwit/MWEB/aux-cb), never coinbase-only, identical across regimes; - LTC dual sink (submit_block_p2p -> submitblock RPC fallback); - DOGE aux dual sink (embedded P2P relay -> submitauxblock->dogecoind); - merged-mining coupling: aux LOST when parent LOST, aux sinks notwithstanding; - load-bearing invariant regime _|_ reaches_network on BOTH chains. Confined to src/impl/ltc/test; reads core::version_gate SSOT read-only, no core/bitcoin_family drift. Off the CI allowlist (no #137 trap) until the G3 regtest VM lane is authorized; live leg swaps the sink lambdas for the real submit paths.
frstrtr
added a commit
that referenced
this pull request
Jul 26, 2026
…ent + DOGE aux) (#870) * ltc/doge: G3a populated-block-production CI gate (non-hollow, LTC parent + DOGE aux) Wire PR #679 g3a_populated_block_regtest_test.cpp (previously an unbuilt standalone main(), dead to CI) into CMake as the ctest target LtcG3aPopulated, add a machine-parseable G3A_ASSERTIONS_PASSED summary, and add the DASH/BCH-modeled gate script tests/gates/ltc_g3a_regtest_block_production.sh: network-free CI arm via ctest with an empty-suite guard + an assertion-count floor (>=38), plus an opt-in live regtest arm gated on LTC_RPC_PASS+DOGE_RPC_PASS (deterministic skip absent creds). Populated LTC parent (coinbase+P2PKH+P2SH+segwit+MWEB) carries the DOGE aux-coinbase auxpow child; production path proven regime-independent (v35/ HYBRID/v36) on both the LTC parent and DOGE aux dual sinks. * ci: install LTC G3a populated-regtest gate workflow + allowlist ltc_g3a_populated_test Workflow files cannot be pushed over the API token (no workflow scope), so they land here via the SSH remote. Also fixes the drift-guard failure on this branch: ltc_g3a_populated_test is declared in src/impl/ltc/test/CMakeLists.txt but was absent from the build.yml --target allowlist in both the linux and linux-asan jobs (NOT_BUILT risk). --------- Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
G3a populated-block production harness — LTC parent + DOGE merged-aux
Classification: SAFE-ADDITIVE, test-only, single-coin (LTC). Two new files, zero production/core drift, per-coin isolation preserved.
Diff (vs master, clean rebase — 2 files, +594)
src/impl/ltc/test/g3a_populated_block_regtest_test.cpp(+300) — the G3a regtest harnessscripts/ltc_g2_crossing_staged_migration_harness.sh(+294) — the G2 three-tier staged-migration crossing harness (carried on this branch)Isolation
src/impl/ltc/test+scripts/. Nosrc/core, nobitcoin_familydrift.core::version_gateconsumed READ-ONLY.Coverage (38/38 PASS)
Notes
🔒 GPG-signed (50AB1379).